"""
打印ChromaDB的版本和所有文档的元数据
"""

import chromadb
from config import CHROMA_PERSIST_DIR

# 输出ChromaDB版本
print(f"ChromaDB版本: {chromadb.__version__}")

# 输出 CHROMA_PERSIST_DIR
print(f"CHROMA_PERSIST_DIR: {CHROMA_PERSIST_DIR}")

# 连接到ChromaDB
chroma_client = chromadb.PersistentClient(path=CHROMA_PERSIST_DIR)

# 获取documents集合
try:
    collection = chroma_client.get_collection(name="documents")
    print(f"成功获取ChromaDB集合，包含 {collection.count()} 个文档")

    # 查询所有文档的ID和元数据
    all_docs = collection.get()

    print("\nChromaDB文档元数据信息：")
    print("=====================")

    # 遍历所有文档
    for i in range(len(all_docs["ids"])):
        doc_id = all_docs["ids"][i]
        metadata = all_docs["metadatas"][i] if i < len(all_docs["metadatas"]) else {}

        print(f"文档ID: {doc_id}")
        print(f"元数据: {metadata}")
        print("------------------------")

    print(f"\n总共检查了 {len(all_docs["ids"])} 个文档")

    # 特别检查分类ID不为空的文档
    print("\n分类ID不为空的文档：")
    print("=====================")

    for i in range(len(all_docs["ids"])):
        doc_id = all_docs["ids"][i]
        metadata = all_docs["metadatas"][i] if i < len(all_docs["metadatas"]) else {}

        if metadata and "category_ids" in metadata and metadata["category_ids"]:
            print(f"文档ID: {doc_id}, 分类ID: {metadata["category_ids"]}")
            print("------------------------")

except Exception as e:
    print(f"获取ChromaDB集合失败: {e}")
